package com.liruo.treasureattic.service.user.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @Author:liruo
 * @Date:2023-02-15-11:22:01
 * @Desc
 */
@Configuration
public class UserConfig {
    /**
     * BCryptVersion
     *      由于历史原因，$2a$和$2y$实际上是同一个版本，而$2b$是在此基础上的修订版本。
     *      然而，$2b$版本通常被认为比$2a$和$2y$更安全，因为它在处理一些边缘情况时更健壮
     *      对于绝大多数的应用，使用默认的 $2Y 版本已经足够安全
     * 60个字符的长度存储哈希值
     */
    @Bean
    public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder(
                BCryptPasswordEncoder.BCryptVersion.$2B,
                12
        );
    }
}
